//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    motto: '加速度测试',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    accelerometerIsOn: false,
    accX: 0,
    accY: 0,
    accZ: 0,
    accXYZ: 0,
    accMax: 0,
    accMin: 999,
  },
  //事件处理函数
  bindViewTap: function() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad: function() {
    if (app.globalData.userInfo) {
      // console.log(app.globalData)
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
      console.log(this.data.userInfo)
    } else if (this.data.canIUse) {
      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  start: function(e) {
    var thisPage = this
    if (!thisPage.data.accelerometerIsOn) {
      wx.startAccelerometer({
        interval: 'normal',
        success: () => {
          thisPage.setData({
            accelerometerIsOn: true,
            accX: 0,
            accY: 0,
            accZ: 0,
            accXYZ: 0,
            accMax: 0,
            accMin: 999,
          })
          thisPage.setData({
            motto: 'started ' + new Date().getSeconds()
          })
        }
      })
      wx.onAccelerometerChange(function(res) {
        var xyz = Math.sqrt(res.x * res.x + res.y * res.y + res.z * res.z)
        var max = thisPage.data.accMax
        var min = thisPage.data.accMin
        if (xyz > max) {
          max = xyz
        }
        if (xyz < min) {
          min = xyz
        }

        thisPage.setData({
          accX: res.x > 0 ? '+' + res.x.toFixed(10) : res.x.toFixed(10),
          accY: res.y > 0 ? '+' + res.y.toFixed(10) : res.y.toFixed(10),
          accZ: res.z > 0 ? '+' + res.z.toFixed(10) : res.z.toFixed(10),
          accXYZ: '+' + xyz.toFixed(10),
          accMax: Number(max).toFixed(10),
          accMin: Number(min).toFixed(10),
        })
      })
    }
  },
  stop: function(e) {
    var thisPage = this
    if (thisPage.data.accelerometerIsOn) {
      wx.stopAccelerometer({
        success: () => {
          thisPage.setData({
            accelerometerIsOn: false,
          })
          thisPage.setData({
            motto: 'stopped'
          })
        }
      })
    }
  },
  alertUser: function(e) {
    var thisPage = this
    wx.showToast({
      title: 'loading',
      icon: 'loading',
      duration: 100,
    })
    setTimeout(() => {
      wx.showModal({
        title: '提示',
        content: '这是一个模态弹窗',
        success: function(res) {
          if (res.confirm) {} else if (res.cancel) {}
        }
      })
    }, 100)

  },
  getUserInfo: function(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }
})